package com.cowin.base;

import tk.mybatis.mapper.entity.Condition;

import java.util.List;

/**
 * Copyright (C), 1998-2018, 奇瑞信息
 *
 * @author : 于超
 * @Date: 2019/8/29 17:25
 * @Description:
 */
public interface Service<T> {
    /**
     * 功能描述:持久化 <br>
     *
     * @param model
     * @return: void
     * @since: 1.0.0
     * @Author:yuchao
     * @Date: 2019/4/15 13:33
     */
    int save(T model);

    /**
     * 功能描述: 通过主鍵刪除<br>
     *
     * @param id
     * @return:
     * @since: 1.0.0
     * @Author:yuchao
     * @Date: 2019/4/15 13:34
     */
    int deleteById(Integer id);

    /**
     * 功能描述: 更新<br>
     *
     * @param model
     * @return:
     * @since: 1.0.0
     * @Author:yuchao
     * @Date: 2019/4/15 13:35
     */
    int update(T model);
    /**
     * 功能描述:通过ID查找 <br>
     *
     * @param id
     * @return:
     * @since: 1.0.0
     * @Author:yuchao
     * @Date: 2019/4/15 13:35
     */
    T findById(Integer id);

    /**
     * 功能描述: 根据条件查找<br>
     *
     * @param condition
     * @return:condition
     * @since: 1.0.0
     * @Author:yuchao
     * @Date: 2019/4/15 13:35
     */
    List<T> findByCondition(Condition condition);
    /**
     * 功能描述: 获取所有<br>
     *
     * @param
     * @return:
     * @since: 1.0.0
     * @Author:yuchao
     * @Date: 2019/4/15 13:36
     */
    List<T> findAll();
    /**
     * 功能描述: 根据条件删除<br>
     *
     * @param condition
     * @return:
     * @since: 1.0.0
     * @Author:yuchao
     * @Date: 2019/4/15 13:36
     */
    int deleterByCondition(Condition condition);
}
